package com.jeethink.project.cadre.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jeethink.common.utils.DateUtils;
import com.jeethink.common.utils.text.Convert;
import com.jeethink.framework.aspectj.lang.annotation.DataScope;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.jeethink.project.cadre.mapper.SysUserCadreMapper;
import com.jeethink.project.cadre.domain.SysUserCadre;
import com.jeethink.project.cadre.service.ISysUserCadreService;

/**
 * 用户信息Service业务层处理
 * 
 * @author xyp
 * @date 2020-09-21
 */
@Service
public class SysUserCadreServiceImpl implements ISysUserCadreService 
{
    @Autowired
    private SysUserCadreMapper sysUserCadreMapper;

    /**
     * 统计性别个数
     * @param sysUserCadre
     * @return
     */
    @Override
    public JSONObject selectSexCount(SysUserCadre sysUserCadre) {
        JSONObject jsonObject=new JSONObject();
        List<SysUserCadre> sysUserCadres = sysUserCadreMapper.selectSexCount(sysUserCadre);
        List<Integer> listage=new ArrayList();
        for(SysUserCadre s:sysUserCadres ){
            listage.add( Integer.parseInt(s.getSpousePhone()));
        }
        jsonObject.put("sexCount",listage);
        List<SysUserCadre> sysUserCadres1 = sysUserCadreMapper.selectDeptCount(sysUserCadre);
        List<JSONObject> countList=new ArrayList();
        for (SysUserCadre s:sysUserCadres1){
            JSONObject j=new JSONObject();
            j.put("value", Integer.parseInt(s.getSpousePhone()));
            j.put("name",s.getSalt());
            countList.add(j);
        }
        jsonObject.put("deptCount",countList);

        List<SysUserCadre> sysUserCadres2 = sysUserCadreMapper.selectAgeCount(sysUserCadre);
        List<Integer> ageList=new ArrayList();
        List<String> agenameList=new ArrayList();
        for(SysUserCadre s:sysUserCadres2){
            ageList.add(Integer.parseInt(s.getSpousePhone()));
            agenameList.add(s.getAge()+"岁");
        }
        jsonObject.put("ageCount",ageList);
        jsonObject.put("ageNameList",agenameList);
        return jsonObject;
    }

    /**
     * 查询用户信息
     * 
     * @param userId 用户信息ID
     * @return 用户信息
     */
    @Override
    public SysUserCadre selectSysUserCadreById(Long userId)
    {
        return sysUserCadreMapper.selectSysUserCadreById(userId);
    }

    /**
     * 查询用户信息列表
     * 
     * @param sysUserCadre 用户信息
     * @return 用户信息
     */
    @Override
    @DataScope(deptAlias = "d", userAlias = "u")
    public List<SysUserCadre> selectSysUserCadreList(SysUserCadre sysUserCadre)
    {
        return sysUserCadreMapper.selectSysUserCadreList(sysUserCadre);
    }

    /**
     * 新增用户信息
     * 
     * @param sysUserCadre 用户信息
     * @return 结果
     */
    @Override
    public int insertSysUserCadre(SysUserCadre sysUserCadre)
    {
        sysUserCadre.setCreateTime(DateUtils.getNowDate());
        return sysUserCadreMapper.insertSysUserCadre(sysUserCadre);
    }

    /**
     * 修改用户信息
     * 
     * @param sysUserCadre 用户信息
     * @return 结果
     */
    @Override
    public int updateSysUserCadre(SysUserCadre sysUserCadre)
    {
        sysUserCadre.setUpdateTime(DateUtils.getNowDate());
        return sysUserCadreMapper.updateSysUserCadre(sysUserCadre);
    }

    /**
     * 删除用户信息对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteSysUserCadreByIds(String ids)
    {
        return sysUserCadreMapper.deleteSysUserCadreByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除用户信息信息
     * 
     * @param userId 用户信息ID
     * @return 结果
     */
    @Override
    public int deleteSysUserCadreById(Long userId)
    {
        return sysUserCadreMapper.deleteSysUserCadreById(userId);
    }

    /**
     * 删除用户信息信息
     *
     * @return 结果
     */
    @Override
    public List<SysUserCadre> selectAgeList()
    {
        return sysUserCadreMapper.selectAgeList();
    }

    /**
     * 修改年龄
     *
     * @param sysUserCadre 用户信息
     * @return 结果
     */
    public int updateAge(SysUserCadre sysUserCadre){
        return sysUserCadreMapper.updateAge(sysUserCadre);
    };


}
